home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import sun.net.www.protocol.http.InMemoryCookieStore;
-
- public class CookieManager extends CookieHandler {
- private CookiePolicy policyCallback;
- private CookieStore cookieJar;
-
- public CookieManager() {
- this((CookieStore)null, (CookiePolicy)null);
- }
-
- public CookieManager(CookieStore var1, CookiePolicy var2) {
- this.cookieJar = null;
- this.policyCallback = var2 == null ? CookiePolicy.ACCEPT_ORIGINAL_SERVER : var2;
- if (var1 == null) {
- this.cookieJar = new InMemoryCookieStore();
- } else {
- this.cookieJar = var1;
- }
-
- }
-
- public void setCookiePolicy(CookiePolicy var1) {
- if (var1 != null) {
- this.policyCallback = var1;
- }
-
- }
-
- public CookieStore getCookieStore() {
- return this.cookieJar;
- }
-
- public Map<String, List<String>> get(URI var1, Map<String, List<String>> var2) throws IOException {
- if (var1 != null && var2 != null) {
- HashMap var3 = new HashMap();
- if (this.cookieJar == null) {
- return Collections.unmodifiableMap(var3);
- } else {
- ArrayList var4 = new ArrayList();
-
- for(HttpCookie var6 : this.cookieJar.get(var1)) {
- if (this.pathMatches(var1.getPath(), var6.getPath())) {
- var4.add(var6);
- }
- }
-
- List var7 = this.sortByPath(var4);
- var3.put("Cookie", var7);
- return Collections.unmodifiableMap(var3);
- }
- } else {
- throw new IllegalArgumentException("Argument is null");
- }
- }
-
- public void put(URI var1, Map<String, List<String>> var2) throws IOException {
- if (var1 != null && var2 != null) {
- if (this.cookieJar != null) {
- for(String var4 : var2.keySet()) {
- if (var4 != null && (var4.equalsIgnoreCase("Set-Cookie2") || var4.equalsIgnoreCase("Set-Cookie"))) {
- for(String var6 : (List)var2.get(var4)) {
- try {
- for(HttpCookie var9 : HttpCookie.parse(var6)) {
- if (this.shouldAcceptInternal(var1, var9)) {
- this.cookieJar.add(var1, var9);
- }
- }
- } catch (IllegalArgumentException var10) {
- }
- }
- }
- }
-
- }
- } else {
- throw new IllegalArgumentException("Argument is null");
- }
- }
-
- private boolean shouldAcceptInternal(URI var1, HttpCookie var2) {
- try {
- return this.policyCallback.shouldAccept(var1, var2);
- } catch (Exception var4) {
- return false;
- }
- }
-
- private boolean pathMatches(String var1, String var2) {
- if (var1 == var2) {
- return true;
- } else if (var1 != null && var2 != null) {
- return var1.startsWith(var2);
- } else {
- return false;
- }
- }
-
- private List<String> sortByPath(List<HttpCookie> var1) {
- Collections.sort(var1, new CookiePathComparator());
- ArrayList var2 = new ArrayList();
-
- for(HttpCookie var4 : var1) {
- if (var1.indexOf(var4) == 0 && var4.getVersion() > 0) {
- var2.add("$Version=\"1\"");
- }
-
- var2.add(var4.toString());
- }
-
- return var2;
- }
- }
-